from sqlalchemy import Table, Column, Integer, String
from sqlalchemy import *
from sqlalchemy.orm import mapper
from database import metadata, db_session, init_db, engine
from sqlalchemy import ForeignKey
from sqlalchemy.orm import relationship, backref
from proyecto import Proyecto, proyecto
from usuario import Usuario, usuario
from item import Item, item
from estadoItem import EstadoItem, estadoItem

class Adjunto(object):
    """ Clase que define el modelo de la tabla adjunto """
    
    query = db_session.query_property()

    def __init__(self, nombre=None, descripcion=None, archivo=None):
        """ Metodo init """
        self.nombre = nombre
        self.descripcion = descripcion
        self.archivo = archivo

    def __repr__(self):
        return self.nombre

adjunto = Table('adjunto', metadata,
    Column('idadjunto', Integer, primary_key=True),
    Column('nombre', String(50)),
    Column('descripcion', String(250)),
    Column('iditem', Integer, ForeignKey('item.iditem')),
    Column('archivo', Binary)
)

mapper(Adjunto, adjunto, properties={
    'item' : relationship(Item, backref='adjuntos'),
})